package main

import (
	"code.inke.cn/bpc/framework/server/utils/atom"
	"fmt"
	"sync"
)

type BizExtra struct {
	BuzType  int   `json:"buz_type"`  // 业务类型
	PayUid   int64 `json:"pay_uid"`   // 付费用户id
	SKUID    int   `json:"sku_id"`    // 业务交易ID
	SKUCount int   `json:"sku_count"` //
	atom.Atom
}

func main() {
	var wg sync.WaitGroup
	var mx sync.Mutex
	b := BizExtra{BuzType: 0}
	for i:=0;i<10000;i++ {
		wg.Add(1)
		go testStruct(&b,&wg,&mx)
	}
	wg.Wait()
	fmt.Println(b)
}

//测试结构体的引用传到函数里，改变之后，函数之外会不会改变
func testStruct(b *BizExtra,wg *sync.WaitGroup,mx *sync.Mutex) {
	defer wg.Done()
	mx.Lock()
	b.BuzType = b.BuzType +10
	mx.Unlock()
}

type TestJC struct {
	Age int `json:"age"`
}
type TestJc2 struct {
	TestJC
}
